Writing RTSS Device Drivers

RTX64 provides a number of features that enable you to quickly and easily develop device drivers. In RTX64, device drivers are programmed as RTSS processes. The RTX64 device driver model is simpler than that of Windows and gives you greater flexibility in design. Because Windows device drivers are often user-mode drivers and rely on user-mode Windows services, they cannot be used "as-is" with RTSS applications. Even kernel-mode Windows device drivers cannot run in RTX64 without making some porting modifications, since non-deterministic Windows Development Kit (WDK) or Driver Development Kit (DDK) functions may be called in those drivers.

Devices can be accessed and controlled through three types of functions: Port I/O, Bus I/O, and mapped memory. Unlike Windows, where access to drivers occurs via calls to DeviceIoControl, RTSS drivers can be structured as static libraries or RTDLLs. In each case, the driver writer can supply library functions directly to the RTSS application writer without the need to employ the DeviceIoControl interface.

For many applications, it is not necessary to write a hard real-time (RTSS) device driver for standard desktop devices. When hard real-time performance is not required for device access, as is often the case with video, sound, and network devices, the recommended approach is to develop a Win32 application that communicates with RTSS applications through IPC mechanisms, and communicates with necessary devices through standard Windows device drivers.

 

See Also